package com.javastudy.basis.map;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

/**
 JDK1.4中
 Map map = new HashMap();
 Iterator it = map.entrySet().iterator();
 while (it.hasNext()) {
 Map.Entry entry = (Map.Entry) it.next();
 Object key = entry.getKey();
 Object value = entry.getValue();
 }

 JDK1.5中,应用新特性For-Each循环
 Map m = new HashMap();
 for(Object o : map.keySet()){
 map.get(o);
 }

 返回的 set 中的每个元素都是一个 Map.Entry 类型。

 private Hashtable<String, String> emails = new Hashtable<String, String>();

 //方法一: 用entrySet()
 Iterator it = emails.entrySet().iterator();
 while(it.hasNext()){
 Map.Entry m=(Map.Entry)it.next();
 logger.info("email-" + m.getKey() + ":" + m.getValue());
 }

 // 方法二：jdk1.5支持，用entrySet()和For-Each循环()
 for (Map.Entry<String, String> m : emails.entrySet()) {

 logger.info("email-" + m.getKey() + ":" + m.getValue());
 }

 // 方法三：用keySet()
 Iterator it = emails.keySet().iterator();
 while (it.hasNext()){
 String key;
 key=(String)it.next();
 logger.info("email-" + key + ":" + emails.get(key));
 }

 // 方法五：jdk1.5支持，用keySEt()和For-Each循环

 for(Object m: emails.keySet()){
 logger.info("email-" + m+ ":" + emails.get(m));
 }
 */
public class MapLoop {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        HashMap<Object, Object> hash = new HashMap<Object, Object>();
        TreeMap<Object, Object> treeMap = new TreeMap<Object, Object>();
        list.add("a");
        list.add("b");
        list.add("c");

        hash.put(3, 3);
        hash.put(4, 4);
        hash.put(5, 5);
        hash.put(6, 6);
        hash.put(1, 1);
        hash.put(2, 2);

        treeMap.put(1, 1);
        treeMap.put(2, 2);
        treeMap.put(3, 3);
        treeMap.put(4, 4);
        treeMap.put(5, 5);
        treeMap.put(6, 6);

        //list遍历
        for (String m : list) {
            System.out.println(m);
        }
        // hashmap entrySet() 遍历
        for (Map.Entry<Object, Object> m : hash.entrySet()) {
            System.out.println(m.getKey() + "---" + m.getValue());
        }
        //hashmap keySet() 遍历
        for (Object m : hash.keySet()) {
            System.out.println(m + "---" + hash.get(m));
        }
        // treemap keySet()遍历
        for (Object m : treeMap.keySet()) {
            System.out.println(m + "---" + treeMap.get(m));
        }
    }
}
